1. Field of the Invention
The present invention relates to a method for handling timers in a wireless communications system, and more specifically, to a method for handling the Timer_Status_Periodic timer after an RLC reset in a wireless communications system.
2. Description of the Prior Art
Technological advances have moved hand in hand with more demanding consumer expectations. Devices that but ten years ago were considered cutting edge are today obsolete. These consumer demands in the marketplace spur companies towards innovation. The technological advances that result only serve to further raise consumer expectations. Presently, portable wireless devices, such as cellular telephones, personal digital assistants (PDAs), notebook computers, etc., are a high-growth market. However, the communications protocols used by these wireless devices are quite old. Consumers are demanding faster wireless access with greater throughput and flexibility. This has placed pressure upon industry to develop increasingly sophisticated communications standards. The 3rd Generation Partnership Project (3GPP) is an example of such a new communications protocol.
Please refer to FIG. 1. FIG. 1 is a simplified block diagram of the prior art communications model. In a typical wireless environment, a first station 10 is in wireless communications with one or more second stations 20. The first station 10 is comprised of upper layers 12, a radio link control (RLC) entity 14, and lower layers 16 which are below the RLC 14. In the following disclosure, all of the RLC entities are assumed to be RLC acknowledged mode (RLC AM) entities. The upper layers 12 can deliver messages to the RLC 14 through service data units (SDUs) 13. The SDUs 13 may be of any size, and hold data that the upper layers 12 wish delivered to the second station 20. The RLC 14 composes the SDUs 13 into one or more protocol data units (PDUs) 15. Each PDU 15 of the RLC 14 is of a fixed size, and is delivered to the lower layers 16. The lower layers 16 include the physical layer, which is in charge of transmitting data to the second station 20.
The second station 20 shown has exactly the same basic structure as the first station 10. The second station 20 also includes upper layers 22, an RLC 24, and lower layers 26. Just as with the first station 10, the second station 20 uses the upper layers 22 to transmit SDUs 23 to the RLC 24, and uses the RLC 24 to transmit PDUs 25 to the lower layers 26. The data transmitted by the first station 10 is received by lower layers 26 of the second station 20 and reconstructed into one or more PDUs 25, which are passed up to the RLC 24. The RLC 24 receives the PDUs 25 and from them assembles one or more SDUs 23, which are then passed up to the upper layers 22. The upper layers 22, in turn, convert the SDUs 23 back into messages, which should be identical to the original messages that were generated by the first station 10. In communication systems, the terms SDU and PDU have broad meanings. For purposes of the following disclosure, the term “SDU” is used to indicate SDUs passed from the upper layers to the RLC, and the term “PDU” should be understood as PDUs passed from the RLC to lower layers. In addition, for simplicity the following disclosure will be written from the perspective of the first station 10, unless otherwise noted.
Please refer to FIGS. 2 and 3. FIGS. 2 and 3 are message sequence charts illustrating a reset procedure for peer RLC AM entities according to the prior art. In all the message sequence charts used in the following disclosure, the progression of time is shown from top to bottom. In FIG. 2, the first station 10 is shown initiating the reset procedure by sending a RESET PDU to the second station 20. From the perspective of the first station 10, the reset procedure begins with transmission of the RESET PDU, and is not finished until a RESET ACK PDU is received from the second station 20. From the perspective of the second station 20, the reset procedure begins upon reception of the RESET PDU, and ends after transmission of the RESET ACK PDU to the first station 10. In FIG. 3, the opposite scenario is shown. That is, the second station 20 initiates the reset procedure by sending a RESET PDU to the first station 10, and the first station 10 acknowledges this RESET PDU by sending a RESET ACK PDU to the second station 20. Therefore, either one of the peer RLC entities 14 and 24 contained in the first and second stations 10 and 20 can initiate a reset procedure.
Resetting the RLC 14 is defined by the 3rd Generation Partnership Project (3GPP) specification 3GPP TS 25.322 V3.11.0 “RLC Protocol Specification”, which is included herein by reference. According to the current RLC reset procedure for acknowledged mode, all timers except for a Timer_RST timer are stopped for each peer RLC AM entity upon completion of the reset procedure for that entity. Therefore, Timer_Poll, Timer_Poll_Prohibit, Timer_EPC, Timer_Discard, Timer_Poll_Periodic, Timer_Status_Prohibit, Timer_Status_Periodic, and Timer_MRW are all stopped during a reset procedure. For an example, please refer back to FIG. 2. All of the timers except for the Timer_RST timer would be stopped by the RLC entity 24 of the second station 20 after the RESET ACK PDU is sent to the first station 10. In addition, all of the timers would be stopped by the RLC entity 14 of the first station 10 after the RESET ACK PDU is received from the second station 20.
Please refer to FIG. 4. FIG. 4 is a phase diagram illustrating a transmission window of an RLC AM entity according to the prior art. During normal operation, the RLC AM entity 14 (transmitter) transmits acknowledged mode data (AMD) PDUs to the RLC AM entity 24 (receiver), and each PDU is marked with a sequence number (SN). The SNs have a fixed bit length of n bits. In the preferred embodiment, the bit length n is 12. Hence, the SNs have a range of values from zero to 4095 (212−1). The phase diagram for SNs can thus be represented by a circle. For the following example, point 30 is the sequentially lowest transmitter PDU SN value waiting for acknowledgment from the receiver in the form of a STATUS PDU, which contains information on which PDUs have been acknowledged. In other words, point 30 marks the beginning of the transmitting window. In this example, assume a window size=X. Point 32 marks the highest PDU SN value of an AMD PDU that has been sent so far. Therefore, in order to prevent the transmitting window from filling up, the difference of PDU SN values at point 32 and point 30 has to be less than X. Otherwise, the transmitting window fills up, and deadlock occurs. Deadlock can occur if AMD PDUs sent from the transmitter to the receiver are not properly acknowledged by the receiver. This would cause point 30 to remain stationary, and the difference between point 32 and point 30 would eventually equal the maximum window size of X.
Please refer to FIG. 5. FIG. 5 is a message sequence chart illustrating problems occurring with the Timer_Status_Periodic timer during the prior art reset and re-establishment procedures. The following illustrates the case where the RLC AM entity 14 is configured to use the Timer_Poll_Periodic timer, and the RLC AM entity 24 is configured to use the Timer_Status_Periodic timer. The Timer_Status_Periodic timer is used by the RLC AM entity 24 to send STATUS PDUs to its peer RLC AM entity 14. When the Timer_Status_Periodic timer of the RLC AM entity 24 expires, a STATUS PDU is generated and sent to the RLC AM entity 14. This STATUS PDU informs the RLC AM entity 14 which AMD PDUs have been acknowledged.
First of all, the Timer_Status_Periodic timer is started for the RLC AM entity 24 of the second station 20 when the RLC AM entity 24 is created. Also, the status function “Detection of missing PDU(s)” may be configured for the RLC AM entity 24. If this function is configured, it is triggered only when missing PDU(s) are detected. Next, upon reception of a RESET PDU or a RESET ACK PDU, the RLC AM entity 24 is reset, which causes the Timer_Status_Periodic timer to be stopped. Unfortunately, the Timer_Status_Periodic timer is never restarted after the reset procedure. Therefore, the Timer_Status_Periodic timer does not ever get started again, and cannot trigger a status report sent to the peer RLC AM entity 14 upon expiration of the timer. This means that AMD PDUs with lower SN values indicated by point 30 in FIG. 3 will never be acknowledged. Since point 30 never moves, eventually the difference between point 32 and point 30 will equal the transmission window size of X. Thus, because the timer remains stopped, deadlock occurs, and the RLC AM entity 24 cannot transmit additional PDUs to the peer RLC AM entity 14.
In summary, even though the RLC AM entity 24 was configured to use the Timer_Status_Periodic timer, the Timer_Status_Periodic timer is stopped during a reset procedure. Thus, deadlock occurs due to the way the timer is handled.